Software development can involve multiple developers and/or groups of developers working on various aspects of a software product. Changes made by the developers can result in new versions corresponding to the evolution of the software product. These versions can be associated with directories and files relating to various components of the software product.
Source control management (SCM) products attempt to track and coordinate the work of the developers in creating new versions of the software product. Various SCM products, such as RATIONAL® CLEARCASE® by International Business Machines of Armonk, N.Y., are available to aid in basic source control management. SCM products can work in conjunction with a software development methodology to create a record of activity related to the software product. The SCM products may also limit access to specific versions of the software to prevent multiple parties from simultaneously making changes to a given version of any file or directory element that comprises the software product.
During software development, modules are typically created in tree-like fashion where multiple branches develop from a central trunk or branch and the branches themselves tend to branch again. SCM or versioning trees are distinct and separate from the file system directory tree. A version tree can comprise some or all of the directories and/or files associated with a given component of the software product. SCM products can preserve data associated with versions of components of the software product. A given component begins with a central branch or trunk comprising a directory. A given version begins with a central branch or trunk comprising versions of files and directories in the file system. New versions associated with a directory produce additional branching of both the version tree and the file system directory tree. Such a configuration can represent the recursive development process associated with a software product since directory versions located on an external or secondary portion of a version branch are inherently derived from, and subsequent to, a directory version located on a central or primary portion of the version branch.
In the ClearCase environment, a file system directory tree can comprise a version object base (VOB). A VOB is a single database of entries. Starting at a root element of version zero, which can correspond to the base of the metaphorical trunk or main branch, each branch in the version tree can correspond to a new directory in the file system tree.
The “lost+found” directory in a typical file system is a location for an operating system such as UNIX or WINDOWS® to create or relocate files or data that are identified as corrupt (in UNIX) or are found to have other internal integrity issues. A system administrator can remove entries from an operating system's lost+found directory during a normal system cleanup process.
ClearCase provides a Version Object Base (VOB) lost+found directory that represents a unique boundary between an operating system's file system and a ClearCase VOB's multi-versioned file system.
Removing ClearCase entries from a VOB's lost+found directory involves choices and decisions that challenge even expert system administrators, especially in IBM MultiSite environments. Additional program policies and procedures from other products imposed on top of the ClearCase product can add further complexity to the cleanup decision process. When a directory element is removed, zero or more elements may be added to the VOB's lost+found directory as a result and, for the purposes of this disclosure, any elements so added are referred to as “fallout elements.”